package jt.classic.system.workflow;

import org.limp.basework.SimpleBean;

import java.util.List;


/**
 * 工作流程环节接口
 *
 * @author bizkit
 *
 */
public interface WStep extends SimpleBean {
    /**
     * 环节ID
     * @return String
     */
    public String id();

    /**
     * 环节名称
     * @return String
     */
    public String iname();
    
    /**
     * 环节说明
     * @return String
     */
    public String imemo();

    /**
     * 环节顺序号
     * @return int
     */
    public int ino();

    /**
     * 环节类型
     * <p>
     *   0 开始节点,1 一般节点,2 传阅节点,-1 结束节点
     * </p>
     * @return int
     */
    public int itype();

    /**
     * 环节有效性状态
     * <p>
     *   0 有效,-1 无效
     * </p>
     * @return int
     */
    public int istatus();

    /**
     * 组相关设置(0不相关,1相关)
     * @return int
     */
    public int iscorr();

    /**
     * 是否可传阅(0否,1是)
     * @return int
     */
    public int icc();

    /**
     * 是否为分支环节
     * @return int
     */
    public int inner();

    /**
     * 流程类别
     * @return
     */
    public WFlow iflow();

    /**
     * 环节办理人范围类型(0组/用户,1角色,2岗位)
     * @return int
     */
    public int irangetype();

    /**
     * 参与者ID
     * @return String
     */
    public String irangeids();

    /**
     * 参与者名称
     * @return String
     */
    public String irangenames();

    /**
     * 是否可并行处理
     * @return int
     */
    public int ipara();

    /**
     * 同时办理通过所需的人数
     * @return int
     */
    public int iparavalue();

    /**
     * 上一环节ID
     * @return String[]
     */
    public String[] ilastids();

    /**
     * 环节流向
     * @return List
     */
    public List itrend();

    /**
     * 分支节点
     * @return
     */
    public boolean ifork();

    /**
     * 集合节点
     * @return
     */
    public boolean ijion();

    /**
     * X坐标
     * @return int
     */
    public int ixCoordinate();

    /**
     * Y坐标
     * @return int
     */
    public int iyCoordinate();

    /**
     * 环节处理表单项权限
     * @param tablename
     * @param itemname
     * @return WHandle
     */
    public WHandle ihandle(String tablename, String itemname);

    /**
     * 环节处理多数据项增加操作权限
     * @param tablename 多数据项表名称
     * @return WHandle
     */
    public WHandle iMAddhandle(String tablename);

    /**
     * 环节处理多数据项删除操作权限
     * @param tablename 多数据项表名称
     * @return WHandle
     */
    public WHandle iMDelhandle(String tablename);

    /**
     * 插件定义xml脚本
     * @return String
     */
    public String iplugXML();

    /**
     * 事件前插件列表
     * @return List
     */
    public List iplug4intro();

    /**
     * 事件后插件列表
     * @return List
     */
    public List iplug4outro();

    /**
     * 数据导入插件列表
     * @return List
     */
    public List iplug4import();

    /**
     * 数据导出插件列表
     * @return List
     */
    public List iplug4export();
    
    /**
     * 发送方式(0手工,1自动)
     * @return
     */
    public int isenders();
    
    /**
     * 过渡节点
     * @return boolean
     */
    public boolean itrans();
}
